獲取HTTP請求的參數值,從而可以在方法中進行相應的處理。
用於擷取 URL 中的路徑變數(Path Variable)。
通常在 URL 中使用 {} 定義的部分,例如 /users/{userId} 中的 userId 就是路徑變數。
url:/api/{id} => @PathVariable("id")
@GetMapping("/url/{id}")
public String url(@PathVariable("id") String id){
return id;
}
用於擷取 HTTP 請求的查詢參數(Query Parameter)。
查詢參數是在 URL 中以 ? 開頭的部分,例如 /search?query=example 中的 query 就是查詢參數。
query(Param): /api?id= => @RequestParam("id")
@GetMapping("/query")
public String query(@RequestParam("id")String id){
return id;
}
用於擷取 HTTP 請求的主體(Body)數據。
主體數據通常在 POST 或 PUT 請求中以 JSON 或其他格式的數據提交。
jsonBody(raw) => @RequestBody
@PostMapping("/jsonBody")
public User jsonBody (@RequestBody User user){
return user;
}
User.java
public class User {
private String account;
private String password;
}
用於擷取 HTTP 請求的一部分,通常用於處理多部分(Multipart)請求,例如文件上傳。
formData => @RequestPart("id")
@GetMapping("/formData")
public String formData (@RequestPart("file") MultipartFile file){
// 處理上傳的文件
return "Uploaded file name: " + file.getOriginalFilename();
}
用於擷取 HTTP 請求中的標頭信息,您可以使用它來獲取特定標頭的值。
@GetMapping("/user-agent")
public String getUserAgent(@RequestHeader("User-Agent") String userAgent) {
return "User-Agent header value: " + userAgent;
}